package main

import (
	"fmt"
)

func main() {
	// 循环遍历序列（字符串，切片等）
	// var str = "你好golang"
	// for k, v := range str {
	// 	fmt.Printf("%v -- %c\n", k, v)
	// }

	// var slice1 = []string{"php", "java", "node", "golang"}
	// for k, v := range slice1 {
	// 	fmt.Printf("%v -- %v\n", k, v)
	// }

	// 中断并跳出当前循环 break
	// 一次跳出多层循环 label break

// label1:
// 	for i:=0; i<2; i++ {
// 		for j:=0; j<10; j++{
// 			if j == 3{
// 				break label1
// 			}
// 			fmt.Printf("i=%v j=%v\n", i, j)
// 		}
// 	}
	
	// continue跳过当前循环，开始下一次循环，仅限在for中使用
	// 在continue语句后面添加标签时，可是标签对应循环 continue label
// label2:
// 	for i:=0; i<2; i++ {
// 		for j:=0; j<10; j++{
// 			if j == 3{
// 				continue label2
// 			}
// 			fmt.Printf("i=%v j=%v\n", i, j)
// 		}
// 	}

// 	// goto 跳转到指定标签
// 	var n = 30

// 	if n > 18 {
// 		fmt.Println("成年人")
// 		goto label3
// 	}
// 	fmt.Println("aaa")
// 	fmt.Println("bbb")
// label3:
// 	fmt.Println("ccc")

	var n = 1
	var nums = 0

	label1:
	nums += n
	n++

	if n<=100 {
	goto label1
	}else{
	goto label2
	}

	label2:
	fmt.Printf("n=%v,num=%v", n, nums)

}